教程区块链区块链基础知识附录A 开发工具速查表

本页目录

A.1 智能合约开发框架与CLI

Hardhat(推荐新手与全栈开发者)

Hardhat 是目前以太坊生态系统中最广泛使用的智能合约开发框架,以其JavaScript/TypeScript生态的灵活性和丰富的插件著称。

命令功能
npx hardhat交互式初始化新项目
npx hardhat compile编译 contracts/ 目录下所有Solidity文件
npx hardhat test运行 test/ 目录下所有测试脚本
npx hardhat node启动本地Hardhat Network(类似Ganache,随调随用)
npx hardhat run scripts/deploy.js --network <network>在指定网络上运行部署脚本
npx hardhat verify --network <net> <addr> <constructorArgs...>验证已部署合约的源码

Foundry(推荐高级与安全审计方向)

Foundry 是一套基于Rust构建的原生工具链,测试直接以Solidity编写,执行速度极快,是安全审计人员的首选。

命令功能
forge init <project>初始化新项目
forge build编译合约
forge test运行Solidity测试(支持fuzzing,Gas报告自动生成)
cast send <tx>链上发送交易或调用合约函数
anvil启动本地EVM节点(等效于Hardhat Network)

选型建议

  • 如果你是全栈DApp开发者,或团队使用JavaScript/TypeScript前后端统一,选择 Hardhat
  • 如果你专注于安全审计、需要快速运行大量模糊测试(Fuzzing),或偏好Solidity原生测试,选择 Foundry

A.2 核心合约库与依赖

OpenZeppelin Contracts

OpenZeppelin 的合约库是行业安全标准,基本所有生产级的ERC-20/ERC-721合约都基于它构建。

bash
npm install @openzeppelin/contracts
合约路径用途
@openzeppelin/contracts/token/ERC20/ERC20.sol标准ERC-20代币实现
@openzeppelin/contracts/token/ERC721/ERC721.sol标准NFT实现
@openzeppelin/contracts/token/ERC721/ERC721A.solAzuki优化的ERC-721(批量铸造省Gas)
@openzeppelin/contracts/security/ReentrancyGuard.sol重入攻击防护
@openzeppelin/contracts/access/Ownable.sol所有权管理

始终从官方源安装,并定期升级到最新版本以获取安全补丁。

A.3 前端与合约交互库

ethers.js v6(当前推荐标准)

在19.5节我们已经使用了v6的核心API。以下是速查:

API用途
new ethers.BrowserProvider(window.ethereum)连接MetaMask钱包
await provider.getSigner()获取当前账户的签名器
new ethers.Contract(address, abi, signer)构造合约交互实例
ethers.parseUnits("1.5", 18)字符串/数字 → wei(BigInt)
ethers.formatUnits(weiValue, 18)wei(BigInt) → 可读字符串
await tx.wait()等待交易被链上确认

viem(新兴替代,类型安全优先)

bash
npm install viem

viem 是Wagmi团队推出的轻量库,具备完整的TypeScript类型推导,体积比web3.js小一个数量级,适合新项目。

web3.js(Legacy兼容场景)

bash
npm install web3

web3.js v4.x 已全面支持ESM和TypeScript,但在新项目中的市场份额正逐渐被 ethers.js 和 viem 取代。仅在维护老项目时使用。

选型建议:新项目优先 ethers.js v6,强TypeScript项目可尝试 viem

A.4 测试、调试与模拟工具

Hardhat Network 高级操作

javascript
// 操纵区块时间(模拟时间流逝)
await network.provider.send("evm_increaseTime", [3600]);
await network.provider.send("evm_mine"); // 挖一个新块

// 快照与回滚(测试隔离)
const snapshotId = await network.provider.send("evm_snapshot");
// ... 执行可能改变状态的测试 ...
await network.provider.send("evm_revert", [snapshotId]);

Anvil(Foundry配套本地节点)

bash
anvil --fork-url https://eth-mainnet.g.alchemy.com/v2/YOUR_KEY

Forking 主网的能力使你可以在本地环境中模拟真实链状态,是调试复杂DeFi协议的利器。

Tenderly

在线调试平台(https://tenderly.co),支持:

  • 交易模拟(Simulation):在实际执行前预测交易结果。
  • Gas分析:逐条指令的Gas消耗细分。
  • 调试器:逐步跟踪EVM执行栈。

推荐Hardhat插件

插件功能
hardhat-verify自动Etherscan源码验证
hardhat-gas-reporter测试后生成Gas消耗表格
hardhat-ethersethers.js v5/v6 集成

A.5 区块链浏览器与API服务商

区块浏览器

名称主网测试网特色
Etherscanetherscan.iosepolia.etherscan.io最权威,验证首选
BscScanbscscan.comtestnet.bscscan.comBNB Smart Chain
PolygonScanpolygonscan.comamoy.polygonscan.comPolygon PoS
Arbiscanarbiscan.iosepolia.arbiscan.ioArbitrum L2
Optimistic Etherscanoptimistic.etherscan.iosepolia-optimism.etherscan.ioOptimism L2

RPC节点服务商

服务商免费额度特点
Alchemy开发级免费稳定、仪表盘完善
Infura开发级免费老牌服务商,IPFS集成
QuickNode有限免费全球多区域节点

生产环境务必使用付费RPC套餐或自建节点。免费额度在DApp流量突增时极易被限流。

评论

0

评论加载中…

发表评论

0/2000